This application relates to the counter circuits for recording the number of occurrences of an event on an integrated circuit.
Integrated circuits of many sorts of need to keep track of the number of occurrences of various events. For example, non-volatile memory circuits often need to track of the number of program-erase cycles or the number of times elements have been read for purposes of wear levelling or determining when to perform data scrub operations. In NAND flash memory, error bits counting is important for features such as: deciding the stop point of programming; deciding stop point of program verify; deciding programming start voltage; deciding error bits for test; deciding dynamic read levels; detecting word line failures; and so on.
In many such applications, the number of bits that need to be counted can be quite large. However the counting of these bits consumes test time or operation time, directly degrading system performance and increasing test cost. In these cases, the time to reach the count is often more important than having the count accurate to a high number of significant digits.